//
// Created by aaa on 2025/7/15.
//

//
// Created by aaa on 2025/7/15.
//

#include<bits/stdc++.h>

using namespace std;

//const int N = 1e2 + 10;

const int N = 1e6 + 10;


//int w[N],dp[N][N][2];
//int n,k;

int w[N],dp[N][2];
int n,k;

//7 2
//3 2 5 3 4 1 6
int main(){
    cin >> n >> k;
    for(int i = 1;i <= n;i++) cin >> w[i];

//    for(int i = 1;i <= n;i++) dp[0][i][1] = -1e6;
//
//    for(int i = 1;i <= n;i++){
//        for(int j = 1;j <= k;j++){
//            dp[i][j][0] = max(dp[i-1][j][0],dp[i-1][j][1] + w[i]);
//            dp[i][j][1] = max(dp[i-1][j][1],dp[i-1][j-1][0] - w[i]);
//        }
//    }
//    cout << dp[n][k][0];


    for(int i = 1;i <= n;i++) dp[i][1] = -1e6;

    for(int i = 1;i <= n;i++){
        for(int j = 1;j <= k;j++){
            dp[j][0] = max(dp[j][0],dp[j][1] + w[i]);
            dp[j][1] = max(dp[j][1],dp[j-1][0] - w[i]);
        }
    }
    cout << dp[k][0];

    return 0;
}